Bash, Zsh 환경변수 설정 - export 사용 여부의 차이
Bash/Zsh 환경변수 설정: export 사용 여부의 차이
1. 환경변수 설정 방법
Bash 또는 Zsh에서 환경변수를 설정하는 방법에는 두 가지가 있습니다.
-
export
를 사용하지 않는 방법:MY_VAR="hello"
- 이 방법은 현재 쉘에서만 변수를 사용할 수 있습니다.
- 새로 실행되는 프로세스(예:
bash
,zsh
)에서는 변수값이 유지되지 않습니다.
-
export
를 사용하는 방법:export MY_VAR="hello"
- 이 방법은 현재 쉘뿐만 아니라 새로 실행되는 프로세스에도 변수가 유지됩니다.
2. 실험 결과
다음 실험을 통해 차이를 확인할 수 있습니다.
(1) export
없이 환경변수 설정
MY_VAR1="without_export"
echo $MY_VAR1 # 출력: without_export
bash -c 'echo $MY_VAR1' # 출력: (빈 줄)
- 현재 쉘에서는
MY_VAR1
이 설정되어 있지만, 새로운bash
프로세스에서는 변수가 유지되지 않습니다.
(2) export
사용하여 환경변수 설정
export MY_VAR2="with_export"
echo $MY_VAR2 # 출력: with_export
bash -c 'echo $MY_VAR2' # 출력: with_export
export
를 사용하면 새로운 프로세스에서도 환경변수가 유지됩니다.
3. 결론
export
없이 변수를 선언하면 해당 쉘에서만 사용 가능합니다.export
를 사용하면 해당 변수가 환경변수로 등록되어 새 프로세스에서도 유지됩니다.- 따라서, 환경변수를 다른 프로세스에서도 사용할 필요가 있다면
export
를 사용하는 것이 필수적입니다.
이러한 개념은 .bashrc
, .zshrc
, .profile
등의 설정 파일에서 환경변수를 영구적으로 유지할 때도 중요하게 작용합니다.